package entidades;

import java.util.Random;

import javax.swing.Icon;
import javax.swing.ImageIcon;

import main.Programa;

import recursos.Coordenada;
import graficos.ObjetoRepresentable;
import graficos.RepresentacionGrafica;

public class Ladrillo extends ObjetoRepresentable {
	protected ImageIcon [] imagenes;;
	protected boolean rompible;
	protected PowerUp power;
	
	public Ladrillo(Coordenada coord, boolean romp, Programa prog){
		super(coord, null, prog);
		rompible=false;
		power=null;
		imagenes = new ImageIcon [7];
		cargarImagenes();
	}
	private void cargarImagenes(){
		imagenes[0] = new ImageIcon(getClass().getResource("/recursos/ladrilloI.png"));
		imagenes[1] = new ImageIcon(getClass().getResource("/recursos/ladrilloR.png"));
		imagenes[2] = new ImageIcon(getClass().getResource("/recursos/baseCanioDer.png"));
		imagenes[3] = new ImageIcon(getClass().getResource("/recursos/baseCanioIzq.png"));
		imagenes[4] = new ImageIcon(getClass().getResource("/recursos/tapaCanioDer.png"));
		imagenes[5] = new ImageIcon(getClass().getResource("/recursos/tapaCanioIzq.png"));
		imagenes[6] = new ImageIcon(getClass().getResource("/recursos/piso.png"));
		
		
	}
	/*
	 * opcion 0 = ladrillo irrompible
	 * opcion 1 = ladrillo rompible
	 * opcion 2 = parte derecha de la base del canio
	 * opcion 3 = parte izquierda de la base del canio
	 * opcion 4 = piso
	 * opcion 5 = parte derecha de la tapa del canio
	 * opcion 6 = parte izqierda de la tapa del canio
	 */
	public void establecerImagen(int opcion){
		
		switch(opcion){
			case 0:{
				this.establecerRepresentacionGrafica(new RepresentacionGrafica(imagenes[0]));
			}break;
			case 1:{
				this.establecerRepresentacionGrafica(new RepresentacionGrafica(imagenes[1]));
				rompible=true;
				Random s=new Random();
				int j=s.nextInt(5000);
				
				j=j%13;
				
				Coordenada c=new Coordenada(this.obtenerCoordenada().obtenerX(), this.obtenerCoordenada().obtenerY()-32);
				switch (j){
				
					case 0:{
						power=new HongoVerde(c, elPrograma);
						elPrograma.agregarPowerUp(power);}break;
					case 8:{
						power=new HongoRojo(c, elPrograma);
						elPrograma.agregarPowerUp(power);}break;
					case 7:{
						power=new HongoRojo(c, elPrograma);
						elPrograma.agregarPowerUp(power);}break;
					case 6:{
						power=new HongoRojo(c, elPrograma);
						elPrograma.agregarPowerUp(power);}break;
					case 2:{
						power=new FlordeFuego(c, elPrograma);
						elPrograma.agregarPowerUp(power);}break;
					case 3:{
						power=new Estrella(c, elPrograma);
						elPrograma.agregarPowerUp(power);}break;
					case 4:{
						power=new Bomba(c, elPrograma);
						elPrograma.agregarPowerUp(power);}break;
					case 9:{
						power=new Moneda(c, elPrograma);
						elPrograma.agregarPowerUp(power);}break;
					case 10:{
						power=new Moneda(c, elPrograma);
						elPrograma.agregarPowerUp(power);}break;
					case 11:{
						power=new Moneda(c, elPrograma);
						elPrograma.agregarPowerUp(power);}break;
					case 12:{
						power=new Moneda(c, elPrograma);
						elPrograma.agregarPowerUp(power);}break;
					case 5:{
						power=new Moneda(c, elPrograma);
						elPrograma.agregarPowerUp(power);}break;
					
					
				
				}
			}break;
			case 2:{
				this.establecerRepresentacionGrafica(new RepresentacionGrafica(imagenes[2]));
			}break;
			case 3:{
				this.establecerRepresentacionGrafica(new RepresentacionGrafica(imagenes[3]));
			}break;
			case 4:{
				this.establecerRepresentacionGrafica(new RepresentacionGrafica(imagenes[6]));
			}break;
			case 5:{
				this.establecerRepresentacionGrafica(new RepresentacionGrafica(imagenes[5]));
			}break;
			case 6:{
				this.establecerRepresentacionGrafica(new RepresentacionGrafica(imagenes[4]));
			}break;
			
		}
		
		}
	public PowerUp ObtenerPower(){
		return power;
		
		
	}
	public void sacarPU(){
		power=null;
		miRepresentacionGrafica.setIcon(null);
	}
	public void hacerindestructible(){
		miRepresentacionGrafica.setIcon(null);
	}
}
